1. Field of the Invention
The present invention relates to systems and methods for monitoring, testing, distribution, and use of computer software with associated methods and systems for repeatedly contacting a software user and exchanging information, such as passwords, authorization information, marketing, advertising, or promotional information, quality assurance information, and network monitoring and metering.
2. Background Art
Software developers are often victims of illicit copying and unauthorized use of their software in violation of contractual obligations imposed by licensing agreements and subject to civil and criminal penalties under various domestic and foreign laws. Unauthorized entities range from a relatively small percentage of the total users to an overwhelming majority of illegal users. Likewise, unauthorized use may range from an xe2x80x9cextraxe2x80x9d copy on a laptop computer or for an office mate to xe2x80x9ctryxe2x80x9d the software, to understating the number of users for a xe2x80x9csitexe2x80x9d license or networked version of the software, to wholesale copying and black market selling or distribution of pirated software. Such unauthorized use not only amounts to theft of the developers"" intellectual property, but also reduces the number of programs sold and therefore the associated profitability of the developer. This may ultimately diminish the creative effort expended by the software developers due to the reduced financial incentive. The advent of the Internet has contributed to the proliferation of pirated software, known as xe2x80x9cwarezxe2x80x9d, which is easily located and readily downloaded.
Various strategies have been employed to make unauthorized duplication and use of software more difficult. One such approach is to provide a hardware xe2x80x9ckeyxe2x80x9d which is typically installed in the parallel port of the computer to provide a software interlock. If the key is not in place, the software will not execute. This method is relatively expensive for the developer and cumbersome for the authorized user while remaining vulnerable to theft by duplication of the hardware key.
Another approach requires the user to enter a serial number or customer identification number during installation of the software. Missing or invalid registration information prevents installation of the software. This approach is easily defeated by transferring the serial number or customer identification number to one or more unauthorized users.
Yet another approach requires registering the software with the manufacturer or distributor to obtain an operational code or password necessary for installation of the software. Again, once the operational code or password is obtained, it may be perpetually transferred along with pirated copies to numerous unauthorized users.
Various copy protection strategies have been employed to reduce the number of unauthorized copies available. This approach is generally disfavored by users who may have a legitimate need to make backup or archival copies or transfer a copy to a new computer or hard drive.
In addition to revenue lost due to unauthorized copying of software, developers expend significant resources to research and develop new software features which will be embraced by users. The increasing complexity of software combined with the wide variety of hardware platforms makes it virtually impossible for a developer to test every combination of features for compatibility and proper operation, particularly while subject to market pressures to release new versions of the software on a regular basis. Compatibility issues may arise when a particular application is used with one or more other applications which may be specific to a particular field or discipline. Minor errors or compatibility issues often are not reported by users but contribute to overall dissatisfaction with the product and may result in reduced sales for future versions. Product research relative to the strengths and weaknesses of the software and the desirability of new features is often costly and time consuming which contributes to the market sensitive release of new versions of the software.
While prior art strategies have enjoyed various levels of success in reducing unauthorized use of software, they often impose a significant burden on the authorized users or are easily defeated by unauthorized users. As such, software developers need an apparatus and/or method for reducing unauthorized use of software which does not burden the authorized users to dissuade them from purchasing and using the protected software.
As such, it is an object of the present invention to provide systems and methods for monitoring, testing, distribution, and use of computer software.
Another object of the present invention is to provide systems and methods for repeatedly contacting a software user and exchanging information, such as passwords, authorization information, marketing, advertising, or promotional information.
A further object of the present invention is to provide systems and methods for monitoring software use to reduce unauthorized software use through repeated contact with users.
Another object of the present invention is to provide systems and methods for monitoring, metering or auditing networked computers having access to particular computer software for compliance with software licensing terms.
Yet another object of the present invention is to provide systems and methods for improving software quality assurance.
A further object of the present invention is to provide systems and methods for collecting operational data relative to various software features which may include program use, errors, help requests, and the like.
In carrying out the above objects and other objects, features, and advantages of the invention, a system and method for generating a plurality of authorization codes for use in monitoring software to reduce unauthorized copying or use of the software include repeatedly requiring a user or user computer to obtain an authorization code upon expiration of an authorization interval for continued operation of the computer software. In one embodiment, the system and method include assigning a unique customer code with a software developer, publisher, or distributor, generating a serial number for each copy of the computer software, generating a password code identifying a plurality of passwords or a password algorithm for each copy of the software, and combining the customer code, the serial number, and the password code to form an authorization code for each copy of the software. In one embodiment, the system and method require a user of the software to contact an authorized software representative during installation of the software, collect registration information from the user or the user computer including an activation key or code, and determine whether the user is an authorized user based on some or all of the registration information and the activation key or code. The codes corresponding to the activation on key or code based on the determination of whether the user is an authorized user.
In another embodiment of the present invention, a system and method for monitoring computer software installed on a plurality of computers in communication with one another or a central computer to form a computer network include associating an activation code or password with the computer software for authorizing one or more copies of the software to be installed on computers associated with the computer network, the activation code or password corresponds to a plurality of authorization codes or passwords (which may be identical if desired), collecting registration information from one or more computers or servers associated with the computer network during installation of the computer software, providing a first authorization code or password from the plurality of authorization codes or passwords for the software to authorize operation of the computer software for a first interval, and requiring entry of another one of the plurality of authorization codes or passwords for each copy of the computer software to continue operating beyond the first interval.
Systems and methods for monitoring computer software to provide quality assurance and marketing information to software developers and/or remote monitoring of network/site license compliance are also provided. In these embodiments, the systems and methods may include storing information relative to use of the computer software and automatically transmitting the stored information to an authorized software representative at predetermined intervals. In one implementation, a system and method for monitoring computer software used by a plurality of computers connected to a local server to form a local area network to reduce unauthorized use of the computer software include monitoring a number of computers using the computer software, storing information associated with the computers using the computer software on the local server, and repeatedly transferring the stored information to a remote server.
The present invention provides a number of advantages relative to prior art systems and methods for monitoring, testing, distribution, and use of computer software. For example, the present invention allows for complete operational and pricing flexibility while providing ongoing contact with authorized users and reducing unauthorized use of software. The global quality assurance capabilities of the present invention afford software developers the ability to fully audit their software applications to identify the strengths, weaknesses, use, and/or errors of various software features. This feature of the present invention may be used for complete statistical control during and after beta test cycles including full monitoring of errors, conflicts, use patterns, etc. eliminating reliance upon human reporting and research. The quality assurance features of the present invention may also be used to provide a complete fault or error log of program conflicts or shutdowns with associated error codes of all programs in use, worldwide, in addition to a complete log of non-fatal errors of all programs in use on a particular computer. Likewise, monitoring of use patterns including time of use, most used features and tools, and use and context of help screens, may be provided through local storage of information which is subsequently transferred to a remote server at predetermined intervals. The flexibility associated with the present invention accommodates a wide range of audit parameters for use in quality assurance as well as network license metering and monitoring. Additional flexibility is provided in that the various features of the present invention may be used alone or in any combination.
The above advantages and other advantages, objects, and features of the present invention, will be readily apparent from the following detailed description of the best mode for carrying out the invention when taken in connection with the accompanying drawings.